home *** CD-ROM | disk | FTP | other *** search
/ Merciful 5 / Merciful - Disc 5.iso / software / r / real_3d / real3dv3.3b.dms / real3dv3.3b.adf / RPL.LZH / RPL / reestabl.rpl < prev    next >
Text File  |  1995-05-01  |  1KB  |  67 lines

  1. (
  2. ( Re-establishes the relationship between target objects and an animation 
  3. ( method ie. assigns 0 to all ISKE tags of the selected objects.
  4. (
  5.  
  6. "objects.rpl" LOAD
  7. "locks.rpl" LOAD
  8. "tags.rpl" LOAD
  9.  
  10. : ReClearISKE
  11.     PARAM 
  12.         VARIABLE aObject
  13.     ENDPARAM
  14.  
  15.     ( check if there is 'ISKE' tags attached to the object and clear it
  16.     aObject FETCH "ISKE" O_FINDTAG DUP 
  17.     IF
  18.         T.aVAL + 0 SWAP STORE
  19.     ELSE
  20.         DROP
  21.     ENDIF
  22. ;
  23.  
  24. ( Recursively handle given object
  25.  
  26. : ReEstabl
  27.     PARAM 
  28.         VARIABLE aObj
  29.     ENDPARAM
  30.  
  31.     aObj FETCH ReClearISKE
  32.  
  33.     aObj FETCH O_GETSUB
  34.     BEGIN DUP WHILE
  35.         DUP ReEstabl
  36.         O_GETNEXT 
  37.     REPEAT
  38.     DROP
  39. ;
  40.  
  41.  
  42. ( Re-establish selected objects
  43.  
  44. : ReEstablish
  45.  
  46.     ( Lock object data 
  47.     iLOCK_SHARED O_LOCK
  48.  
  49.     ( fetch selected objects on stack
  50.     O_GETSEL
  51.  
  52.     ( scan through selected objects and call 'ReEstabl'
  53.     BEGIN DUP WHILE
  54.         ReEstabl
  55.     REPEAT
  56.     DROP
  57.  
  58.     ( release object data
  59.     iLOCK_REMOVE O_LOCK
  60. ;
  61.  
  62. ( call Re-Establish when this file is loaded
  63. ReEstablish
  64.  
  65. ( Get rid of ReEstablish
  66. FORGET ReClearISKE
  67.